# -*- coding: utf-8 -*-
import scrapy
from scrapy.http import Request
from urllib import parse  # 如果url不是完整的就加上这个
from JobSpiders.utils.parse_detail import parse_detail_utils

class JobBigdataSpider(scrapy.Spider):
    #程序名，框架回根据这个名字寻找该程序
    name = 'job_grab'
    #要爬取得关键词
    tarVal="数据"
    lim=0
    allowed_domains = ['jobs.51job.com', 'search.51job.com']
    start_urls = [#起始抓取的Url，tarVal="数据"相当于51Job网站搜索的关键词，010000是北京，020000是上海，000000是全国，3,99中的3是近一个月，这些可以从网站的url分析得知
'https://search.51job.com/list/010000,000000,0000,00,3,99,'+parse.quote(tarVal)+',2,1.html']
   #框架定义函数，进行循环迭代
    def parse(self, response):
        # 1获取到每一条招聘的url并将url给具体的解析函数进行解析字段
        all_url = response.xpath('//*[@id="resultList"]//div/p/span/a/@href').extract()
        for one_url in all_url:
            nurl=parse.urljoin(response.url, one_url)
            #print(nurl)
            yield Request(url=nurl, callback=self.parse_detail)
        #2获取下一页的url并交给scrapy下载
        #result=response.xpath('//*[@class="p_in"]/ul/li[last()]/a/@href').extract_first()
        #print(result)
        #'//*[@class="p_in"]/ul/li[last()]/a/@href'这一段是要分析网页源码得来的，实际上是网站页面“下一页”按钮的链接
        next_url = response.xpath('//*[@class="p_in"]/ul/li[last()]/a/@href').extract_first()
        if next_url:
            yield Request(url=next_url, callback=self.parse)

    def parse_detail(self, response):
        yield parse_detail_utils(self, response)